<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;
use Config;
use DB;

class FileController extends Controller
{	
    /**
     * 后台文件管理列表
     */
	public function getIndex(Request $request)
    {
        //查询数据库
        $res = DB::table('file')->get();
        //分配变量
        return view('admin.file.index',['file'=>$res]);
    }

	//后台上传页面
    public function getAdd(Request $request)
    {	
        // dd('123');
        return view('admin.file.add'); 
    	//前台通过a链接传过来需要下载的文件名 http://mls.com/asd?file=name.exe
    	//构造上传文件方法  上传文件到file目录  
  //   	$file=$request->file;
  //   	//文件上传到public/file/  根据访问的文件名下载
		// return response()->download('file/'.$file);
	}


    //上传文件
    public function postInsert(Request $request)
    {
        // dd($request->all());

        $data=$request->except(['_token']);
        //调用图片上传方法
        $re=self::Upload($request,'file');
        //上传文件方法传入数据
        $data['file']=$re['file'];
            
        //插入数据库
        $res=DB::table('file')->insert($data);
        //判断是否成功
            if($res){
                return redirect('admin/file/index')->with('success','添加成功');
            }else{
                return back()->with('error','添加失败');
            }
    }


        //上传文件方法
    public static function Upload(Request $request,$file)
    {   

        if($request->hasFile($file)){
            //获取文件后缀名
            $hzm = $request->file($file)->getClientOriginalExtension();
            //随机文件名
            $name = md5(time().rand(0,19999999));
            // 拼接文件名  移动到指定目录
            $request->file($file)->move(Config::get('app.upload_file'), $name.'.'.$hzm);
            // 去除文件两边 . 
            $data[$file]=trim(Config::get('/').$name.'.'.$hzm,'.');
            //返回结果
            return $data;
        }
    }

    //修改文件页面
    public function getEdit($id)
    {
        //查询数据库
        $data = DB::table('file')->where('id',$id)->first();
        // dd($data);
        return view('admin.file.edit',['data'=>$data]);
    }


    //修改文件
    public function postUpdate(Request $request)
    {
        $data=$request->except(['_token','id']);
        
        //调用图片上传方法
        $res=self::Upload($request,'file');

        $data['file']=$res['file'];
        
        $res=DB::table('file')->where('id',$request->id)->update($data);
            if($res){
                return redirect('admin/file/index')->with('success','修改成功');
            }else{
                return back()->with('error','修改失败');
            }
    }


    //删除文件
    public function getDelete($id)
    {
        $data = DB::table('file')->where('id',$id)->delete();

        if($data){
            return redirect('/admin/file')->with('success','删除成功');
        }else{
            return back()->with('error','删除失败');
        }
    }
}
